User blog:Direwolves/Stages of Game Development
Alpha This is the version of the game where you are adding all of your new features. It's not really ready for a public market yet and should be expected to be very buggy. Crashes, data loss, etc are all very common aspects of Alpha-version software. Games may be closed alpha with strict media rules so people that didn't get in don't see what else is in the game. Beta This is the version you move to when your software is Feature-Complete. That means that software should remain in Alpha-version until it's done getting new features. The beta is for performing extensive testing & bug-fixing on what is to be the final feature-set of the game. Sometimes features come and go during the beta but not typically. Once a developer is satisfied that there are no more bugs (for the time being), then the software goes into Release Candidate version. Games may still be closed/open and some will become open to see how the servers can handle X amount of people playing at the same time. Release Candidate This version is defined as a beta version with potential to be a final product, unless any significant bugs arise. In this stage of product stabilization, all product features have been designed, coded and tested through one or more beta cycles with no known showstopper-class bug. A release is calledcode complete when the developer agrees that no entirely-new source code will be added to this release. There may still be source code changes to fix defects, and changes to documentation and data files, and to the code for test cases or utilities. -- After all of that, you should have a piece of software that's ready for public consumption. Of course, new features can be implemented later and new bugs may arise but the changes will be much fewer and farther between as care needs to be taken to not release a buggy update to Released software. When you play an Alpha or Beta game, it should not be treated as getting early access to the final game, it should be treated like a construction zone. I have a scenario to give you some perspective on this. Consider, a restaurant being built. You have a friend who is building a new restaurant from the ground up. He invites you to come in for a free meal to see the progress and get your opinions. There is no dining area, most of the kitchen is unfinished and they're installing the ceiling while you eat. You're eating your gourmet meal from a paper plate while standing in the construction area and there is a flake of dry-wall on the edge of your food. That's what it's like to play in an Alpha version of a game. Should you complain because there's no table to sit at and no door on the restroom? No, because the restaurant is still being built and you knew that going in, you're here to help, not just get a free meal. A Beta version of that restaurant might be something like this: Weeks later, you are invited back to the restaurant for another meal on the house. The dining room is complete, the kitchen is complete, the bathroom has a door, the ceiling is finished, etc - this place is physically ready to go. What it needs now is some friends of the owner to come in and test out the whole flow of the restaurant - from entering, to ordering, to eating and using the restroom. That's kind of what it's like to play in a Beta version of a game. At this point, you are still here to help, not just get a free meal. You should be intentionally trying out all kinds of possibilities to see what sort of problems may arise. The restaurant is built and all features implemented, now it's being bug-testing software. Category:Blog posts